

class IncricaoCadastroPass {

    static hasMany = [incricaoCadastroPassGrupoPai: IncricaoCadastroPassGrupoPai, incricaoCadastroPassGrupoEspecifico : IncricaoCadastroPassGrupoEspecifico  ]
    static belongsTo =  Inscricao
    Date dataDeCadastro = new Date()
    Inscricao inscricao
    Integer alteracoes = 0
    Boolean submetePass = false
    Date dataEnvioPass

    static constraints = {
        inscricao(blank:false, nullable:false)
        alteracoes(blank:true, nullable:true )
        submetePass (blank:true, nullable:true )
        dataEnvioPass (blank:true, nullable:true )        
    }

    static mapping = {
        table "TB_INSCRICAO_CADASTRO_PASS"
        id generator: 'sequence' ,params:[sequence:'tb_inscricao_cadastro_id_seq'] 
        incricaoCadastroPassGrupoPai cascade:'all-delete-orphan'
        incricaoCadastroPassGrupoEspecifico cascade:'all-delete-orphan'
        version false
        id column : 'INCRICAO_CADASTRO_PASS_ID'
        dataDeCadastro column : "DT_DATA_CADASTRO"
        alteracoes column : "NU_ALTERACOES"
        submetePass column : 'TP_SUBMETE_PASS'
        dataEnvioPass column : "DT_ENVIO_PASS"
    }
 
    //  especificos
    public static especificos(id) {
        def especifico = [
      'Não Especifico', // 0
      'Laboratório de patologia clínica', // 1
      'Centro de referência especializada em oftamologia', // 2
      'Oftamologia de média complexidade' , // 3
      'Oftamologia de média e alta complexidade' , // 4
      'Unidades de serviço de reabilitação visual ' // 5
        ]
        return especifico[id]
    }
    // Fim  especificos


    public static verificaItensEspecificos(id) {
        return IncricaoCadastroPass.get(id).incricaoCadastroPassGrupoPai.itens.sum().findAll{ it != ',' && it != '0' }.size()
    }
    public static verificaItensEspecificosTotal(id) {
        return IncricaoCadastroPass.get(id).incricaoCadastroPassGrupoPai.itens.sum().findAll{ it != ',' }.size()
    }
    public static verificaSeExisteItemNaoPreenchido(id) {
        return !IncricaoCadastroPass.get(id).incricaoCadastroPassGrupoPai.itens.sum().contains('0')
    }

}









